home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / CIncludes / KeyboardPlugin.h < prev    next >
C/C++ Source or Header  |  1996-05-01  |  4KB  |  120 lines

  1. /*
  2.      File:        KeyboardPlugin.h
  3.  
  4.      Contains:    Required interface for Keyboard Family-Plugins
  5.  
  6.      Version:    Technology:    
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __KEYBOARDPLUGIN__
  19. #define __KEYBOARDPLUGIN__
  20.  
  21. #ifndef __TYPES__
  22. #include <Types.h>
  23. #endif
  24. #ifndef __KEYBOARD__
  25. #include <Keyboard.h>
  26. #endif
  27. #ifndef __NAMEREGISTRY__
  28. #include <NameRegistry.h>
  29. #endif
  30.  
  31. #ifdef __cplusplus
  32. extern "C" {
  33. #endif
  34.  
  35. #if PRAGMA_IMPORT_SUPPORTED
  36. #pragma import on
  37. #endif
  38.  
  39. #if PRAGMA_ALIGN_SUPPORTED
  40. #pragma options align=mac68k
  41. #endif
  42.  
  43. #if FOR_SYSTEM8_PREEMPTIVE
  44. /*
  45. ####################################################################################
  46.         Constructor/Destructor Messages
  47. ####################################################################################
  48. */
  49. typedef OSStatus (*KeyboardPluginInitPtr)(KeyboardID theID, KeyboardDeviceRecord *theDeviceRecord, const RegEntryRef *theRegEntryRef);
  50. /* normal termination*/
  51. typedef OSStatus (*KeyboardPluginFreePtr)(void );
  52. /* error condition termination*/
  53. typedef OSStatus (*KeyboardPluginEjectPtr)(void );
  54. /*
  55. ####################################################################################
  56.         Control Messages
  57. ####################################################################################
  58. */
  59. typedef OSStatus (*KeyboardPluginStartI0Ptr)(void );
  60. typedef OSStatus (*KeyboardPluginHaltIOPtr)(void );
  61. /*
  62. ####################################################################################
  63.         Functional Messages
  64. ####################################################################################
  65. */
  66. typedef OSStatus (*KeyboardPluginValidateHardwarePtr)(void);
  67. typedef OSStatus (*KeyboardPluginGetModifierKeyStatePtr)(KeyboardModifiers *modifiers);
  68. typedef OSStatus (*KeyboardPluginLEDStatusPtr)(KeyboardLEDSelector which, KeyboardLEDState *state);
  69. typedef OSStatus (*KeyboardPluginSetLEDPtr)(KeyboardLEDSelector which, KeyboardLEDState state);
  70. typedef OSStatus (*KeyboardPluginGetNextKeyPtr)(LowLevelKeyEvent *next);
  71. typedef OSStatus (*KeyboardPluginGetDeviceModePtr)(KeyboardDeviceMode *theMode);
  72. typedef OSStatus (*KeyboardPluginSetDeviceModePtr)(KeyboardDeviceMode theMode);
  73. /*
  74. ####################################################################################
  75.         Dispatch Table Definition
  76. ####################################################################################
  77. */
  78.  
  79. enum {
  80.     kKeyboardPluginDispatchTableVersion1 = 0x0001,
  81.     kKeyboardPluginDispatchTableCurrentVersion = kKeyboardPluginDispatchTableVersion1
  82. };
  83.  
  84. struct KeyboardPluginDispatchTable {
  85.  
  86.     short                             version;
  87.     KeyboardPluginInitPtr             PlugInInit;
  88.     KeyboardPluginFreePtr             PlugInFree;
  89.     KeyboardPluginEjectPtr             PlugInEject;
  90.  
  91.     KeyboardPluginStartI0Ptr         PlugInStartIO;
  92.     KeyboardPluginHaltIOPtr         PlugInHaltIO;
  93.  
  94.     KeyboardPluginValidateHardwarePtr  PlugInValidateHardware;
  95.     KeyboardPluginGetModifierKeyStatePtr  PlugInGetModifierKeyState;
  96.     KeyboardPluginLEDStatusPtr         PlugInLEDStatus;
  97.     KeyboardPluginSetLEDPtr         PlugInSetLED;
  98.     KeyboardPluginGetNextKeyPtr     PlugInGetNextKey;
  99.     KeyboardPluginGetDeviceModePtr     PlugInGetDeviceMode;
  100.     KeyboardPluginSetDeviceModePtr     PlugInSetDeviceMode;
  101. };
  102. typedef struct KeyboardPluginDispatchTable KeyboardPluginDispatchTable;
  103.  
  104. #endif
  105.  
  106. #if PRAGMA_ALIGN_SUPPORTED
  107. #pragma options align=reset
  108. #endif
  109.  
  110. #if PRAGMA_IMPORT_SUPPORTED
  111. #pragma import off
  112. #endif
  113.  
  114. #ifdef __cplusplus
  115. }
  116. #endif
  117.  
  118. #endif /* __KEYBOARDPLUGIN__ */
  119.  
  120.